iT邦幫忙

2024 iThome 鐵人賽

DAY 4
0
IT 管理

30 天玩轉 GAS: 打造你的個人自動化助手系列 第 4

[Day 4] GAS - 設定以事件為準的觸發條件OnEdit/OnOpen/onSelectionChange

  • 分享至 

  • xImage
  •  

當完成 App Script 的程式撰寫時,有時候我們並不單純只希望函式在我們按下「執行」時才去執行,而是聰明的在一些觸發時機去執行程式,進而達到自動化的目的。

舉例來說:

  1. 我希望”每次打開某個檔案的時候“,會做....
  2. 我希望"當這個檔案被編輯到的時候",會做....
  3. 我希望"當選取到某部分儲存格的時候",會做....

上述的這些時機點,便是本篇會介紹的「簡易觸發條件」
在 App Script 中,已經有內建的保留函式作為簡易觸發條件,像是 onOpen(e), onEdit(e), onSelectionChange(e) 等等。
簡單來說,當我建立了與上述相同的函式名稱,函式內的程式碼就在特定時機會被執行。接下來就逐一詳細介紹

Example code:
觸發all code

onOpen(e): 在使用者開啟檔案時被觸發

  • 適用檔案種類: Google Doc, Google Sheet, Google Slide, Google Form(開啟編輯模式時)
  • 每當這個檔案被開啟時,就會執行 onOpen(e) 內的程式碼。
    open

onEdit(e): 在使用者編輯檔案時被觸發

  • 適用檔案種類: Google Sheet
  • 當儲存格有任何的變動,就會執行 OnEdit(e) 中的函式
    edit

onSelectionChange(e): 當選取範圍變動時被觸發

  • 適用檔案種類: Google Sheet
  • 當儲存格有選取變動,就會執行 onSelectionChange(e) 中的函式
    selection

最後這裡有個 Summary 的圖表,整理各個 Default 觸發函式的使用產品範圍:

截圖 2024-08-12 晚上11.41.27

Q: 當程式是被觸發的,我要怎麼看 Log / Error?
觸發log
A: 按下左方選單的「執行項目」,這裡會記錄每一次程式被執行、被觸發的 Log,如果有 Error Log 也會顯示在這裡!

Ex:

Error-2

有錯誤就可以從log這邊看出錯在哪裡~
Error-1


注意事項

  • 指令碼必須繫結至檔案,也就是說,以上函式都只能由產品所開啟的 App Scripts 才能觸發,不然由 App Script 所開啟的專案並不會知道要連結到哪個 google 產品***
  • 如果檔案是以唯讀 (檢視或註解) 模式開啟,就不會執行。
  • 需“授權”的服務無法以觸發被執行
  • 執行時間不得超過 30 秒。

想了解更多可看官方文件 簡易觸發條件
另外還有一些觸發條件為 可安裝的觸發條件,需要額外授權、不過提供多種額外的事件,詳細可見官方文件。


那接下來進到下一篇 - 時間導向觸發條件


上一篇
[Day 3] 如何在 GAS 中 Debug & 執行
下一篇
[Day 5] GAS - 設定時間導向觸發條件 newTrigger().timeBased()
系列文
30 天玩轉 GAS: 打造你的個人自動化助手13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言